This invention relates to integrated circuits, and more particularly, to testing integrated circuits such as programmable integrated circuits.
Conventional automatic test pattern generation tools are available for testing application-specific integrated circuits. These tools use information on the design of a circuit under test to create patterns of test signals. A test apparatus may be used to apply the test patterns to the circuit under test and may be used to gather corresponding test results. Because automatic test pattern generation tools are able to generate test patterns automatically with minimal need for manual control, it is possible to rapidly generate test patterns for complex application-specific integrated circuits.
Integrated circuits with programmable logic can be difficult or impossible to test thoroughly in this way. A typical programmable integrated circuit contains programmable elements that are loaded with configuration data. The values of the configuration data bits that are loaded into the programmable elements determine the values of corresponding static control signals that are produced by the programmable elements during operation of the integrated circuit. The static control signals are applied to programmable logic components such as transistors. This configures the programmable logic on the programmable integrated circuit to perform a desired custom logic function.
The programmable nature of programmable integrated circuits makes programmable integrated circuits suitable for circuit applications in which there is insufficient time available to design and debug a full custom design for a hardwired integrated circuit. However, because programmable integrated circuits can be configured in more than one way by loading different configuration data, the way in which a programmable integrated circuit will operate during testing is difficult to specify. Proper test pattern generation requires the identification of suitable test patterns to test the programmable integrated circuit in numerous configurations. For example, if a programmable integrated circuit contains programmable logic that can be configured to route a selected one of multiple clock signals to a given circuit, it may be necessary to perform tests on the programmable integrated circuit that take account of each of the possible clock settings for the integrated circuit.
When testing programmable circuits such as programmable logic device integrated circuits, substantial manual intervention is required. This is because conventional automatic test pattern generation tools are incapable of processing programmable logic device design files to produce test patterns for testing programmable logic devices.
With conventional arrangements, test personnel manually inspect programmable integrated circuit design files to attempt to identify which logic configurations should be used during testing. For integrated circuits that contain numerous repetitive circuit blocks, it is also necessary for test personnel to manually construct chip-level test files from information on the circuit blocks. Although custom test building code is sometimes used to assist test personnel in performing these manual processes, there is no satisfactory way to automatically generate test patterns for testing programmable integrated circuits. Programmable integrated circuit testing therefore remains difficult and error prone.
It would therefore be desirable to be able to provide improved and automated ways in which to test integrated circuits such as programmable integrated circuits.